package process

import "fmt"

//因为UserMgr实例在服务器端只有一个
var(
	userMgr *UserMgr
)


type UserMgr struct {
	onlineUsers map[int]*UserProcess
}

//完成对userMgr初始化
func init() {
	userMgr = &UserMgr{
		onlineUsers: make(map[int]*UserProcess, 1024),
	}
}

//完成对onlineUsers添加
func (this *UserMgr)AddOnlineUser(up *UserProcess) {
	this.onlineUsers[up.UserId] = up
}

//删除
func (this *UserMgr)DelOnlineUser(userId int) {
	delete(this.onlineUsers, userId)
}

//返回所有结果
func (this *UserMgr)GetAllOnlineUsers() map[int]*UserProcess {
	return this.onlineUsers
}

//根据id返回对应的值
func (this *UserMgr)GetOnlineUserById(userId int) (up *UserProcess, err error) {
	ok := this.onlineUsers[userId]
	if ok != nil {
		err = fmt.Errorf("用户id不存在", userId)
		return
	}
	return
}

